package com.ikas.ai.server.module.morningpaper.model.dto;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import lombok.ToString;

/**
 * morningPaper基准类，存放各种单个morningPaper的变量，用于返回前端
 */
@Data
@ToString
public class MorningPaperVariablesDto {
    // Long 对象头
    private String machinePriority;
    private Long machineWholePowerUpCount;
    private Long machineU01ConditionGPowerUpCount;
    private Double machineU01ConditionGPowerUpHours;
    private Long machineU01ConditionPPowerUpCount;
    private Double machineU01ConditionPPowerUpHours;
    private Long machineU01ConditionPCPowerUpCount;
    private Double machineU01ConditionPCPowerUpHours;
    private Long machineU02ConditionGPowerUpCount;
    private Double machineU02ConditionGPowerUpHours;
    private Long machineU02ConditionPPowerUpCount;
    private Double machineU02ConditionPPowerUpHours;
    private Long machineU02ConditionPCPowerUpCount;
    private Double machineU02ConditionPCPowerUpHours;
    private Long machineU03ConditionGPowerUpCount;
    private Double machineU03ConditionGPowerUpHours;
    private Long machineU03ConditionPPowerUpCount;
    private Double machineU03ConditionPPowerUpHours;
    private Long machineU03ConditionPCPowerUpCount;
    private Double machineU03ConditionPCPowerUpHours;
    private Long machineU04ConditionGPowerUpCount;
    private Double machineU04ConditionGPowerUpHours;
    private Long machineU04ConditionPPowerUpCount;
    private Double machineU04ConditionPPowerUpHours;
    private Long machineU04ConditionPCPowerUpCount;
    private Double machineU04ConditionPCPowerUpHours;
    private Long machinePowerUpInWholeYearCount;
    private Long conditionGInWholeYearCount;
    private Long conditionPInWholeYearCount;
    private Long conditionPCInWholeYearCount;
    private Double conditionGInWholeYearSuccessPercent;
    private Double conditionPInWholeYearSuccessPercent;
    private Double conditionPCInWholeYearSuccessPercent;
    private Boolean machineU01InOverhaul;
    private Boolean machineU02InOverhaul;
    private Boolean machineU03InOverhaul;
    private Boolean machineU04InOverhaul;

    // String 对象头
    private Double waterLevelUpperReservoirMetres;
    private Double waterLevelUnderReservoirMetres;
    private Double waterLevelTotalStorageCubicMetres;
    private String waterBuildingInNormal;
    private Double currentTimeOnGridEnergyTenThousandKwh;
    private Double currentTimePowerConsumptionThousandKwh;
    private Double thisYearPowerConsumptionOneHundredMillionKwh;
    private Double thisYearOnGridEnergyOneHundredMillionKwh;

    public MorningPaperVariablesDto merge(MorningPaperVariablesDto other){
        BeanUtil.copyProperties(other,this,new CopyOptions().ignoreNullValue().ignoreError());
        return this;
    }
}
